package com.reefe.service;

import com.reefe.dto.ItemDto;
import com.reefe.pojo.TbItem;

import java.util.Map;

/**
 * Created by xiao on 2017-12-11.
 */
public interface ItemService {

    /**
     * 根据ID查询商品
     * @param itemId
     * @return
     */
    ItemDto getItemById(long itemId);

    /**
     * 添加商品
     * @param itemDto
     * @return 商品
     */
    TbItem addItem(ItemDto itemDto);

    /**
     * 查询商品列表
     * @param draw 请求的标记，代表次数
     * @param start 分页开始位置
     * @param length 每页显示条数
     * @param cid 类别ID
     * @param search 搜索关键字
     * @param orderColumn 排序列
     * @param orderDir 排序方式 asc desc
     * @return Map 结果集
     */
    Map<String,Object> getItemList(int draw, int start, int length, int cid, String search, String orderColumn, String orderDir);

    /**
     * 查询商品总记录数
     * @return 总记录数
     */
    int getAllItemCount();

    /**
     * 搜索查询商品列表
     * @param draw 请求的标记，代表次数
     * @param start 分页开始位置
     * @param length 每页显示条数
     * @param cid 类别ID
     * @param searchKey 搜索关键字
     * @param orderColumn 排序列
     * @param orderDir 排序方式 asc desc
     * @return Map 结果集
     */
    Map<String,Object> getItemSearchList(int draw, int start, int length, int cid, String searchKey, String minDate, String maxDate, String orderColumn, String orderDir);

    /**
     * 更新商品
     * @param id
     * @param itemDto
     * @return
     */
    TbItem updateItem(Long id,ItemDto itemDto);

    /**
     * 删除商品
     * @param id
     * @return
     */
    int deleteItem(long id);

    /**
     * 上/下架商品
     * @param id 商品ID
     * @param state 状态
     * @return
     */
    TbItem alertItemState(Long id, Integer state);

    /**
     * 获取商品的标准信息
     * @param id 商品ID
     * @return
     */
    TbItem getNormalItemById(Long id);
}
